from netfilterqueue import NetfilterQueue
from flow_correctness import *

nat = NAT("172.10.1.2", 8080)
flow_correctness_nat = FlowCorrectness(nat, 10, 'NAT-F')

_pkt = b'E\x00\x00^\x00\x01\x00\x00@\x06\x11\xc3\xf7\x89\xe9\xcc$\x91b\xef\x8duM\xf1\x00\x00\x00\x00\x00\x00\x00\x00P' \
       b'\x02 \x00!\xca\x00\x00abcdefffffffffffffff\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\n\x00\x01\x00\x00\x00' \
       b'\x00\xc3\xc3\xdc\x95$\xc5S\x06\x9e\xd9 n\xb2\xbb#\xa9 '


def print_and_accept(pkt):
    # print(pkt)
    # IP(pkt.get_payload()).show()
    out_pkt = flow_correctness_nat.process(_pkt)  # generate
    # pkt.set_payload(out_pkt)
    pkt.accept()


queue = NetfilterQueue()
queue.bind(1, print_and_accept, max_len=8192 * 20)
try:
    queue.run()
except KeyboardInterrupt:
    queue.unbind()
